1. 반복문
반복문은 어떤 작업을 반복 적으로 수행하고자 할 때 사용된다
2. 반복문의 종류
for 문
반복 횟수를 알고 있을 때 사용하기 좋다.
- 문법
for (int i=0; i<=3; i++) { //반복 구문이 동작하는 동안 실행할 코드 }
🔧 수식 int i=0; i≤3; i++ 해석해 보자
int i = 0; -> 변수 i에 0을 저장한다 i<=3; -> i가 3이 될때 까지 반복한다. i++ -> 코드를 한번 실행할 때마다 i를 1씩 증가시킨다 //정리해보면 for (변수 초기화; 조건식; 증감식){ 코드실행 }
- 초기화
→ 처음에 한번만 수행된다. 변수를 초기화하며 두 개의 변수도 초기화가 가능하다. 또한 변수의 이름은 무조건 i일 필요는 없다.
- 조건식
→ 조건이 참이면 계속 코드를 수행한다.
- 증감식
→ 변수를 얼마나 증가 시킬 것인지 정할 수 있다. i++, i -=1 등 여러가지 수식이 가능하다.
😜 예제를 통하여 알아보자
public class repeat{ public static void main(String[] args){ for(int i=0; i<=5; i++){ System.out.println(i); } //System.out.println(i); } } //결과 //1 //2 //3 //4 //5
- 1로 초기화된 i는 i가 5가 될 때까지 코드를 진행 시키고 자신한테 1을 더한다.
- 따라서 1부터 5까지 출력 된다
반복문 조건 식 안에 선언된 변수는 반복문 밖에서 사용될 수 없다.
- 심화
2.1) 이중 for 문을 사용한 별 찍기 🔨
public class star{ public static void main(String[] args){ for(int i=0; i<=5; i++){ for(int j=0; j<=i; j++){ System.out.print("*"); } System.out.println(" "); } //System.out.println(i); } }
2.2) 편리한 for문
for( 타입 변수명 : 배열) { //반복할 문장 }
- 추후에 배우게 될 배열에서 사용할 수 있다.
- 변수에 배열 안에 있는 값을 넣는다
예시)
int[] arr = {1,2,3,4} for(int i : arr){ System.out.println(i) } //배열의 원소를 하나씩 추출하는 것이다. char[] charr = {'a', 'b', 'c'}; for (char c : charr) { System.out.println(c); }
while문
간단한 반복문 작성에 용이하다.
- 문법
while (조건식) { //반복될 코드 }
- while문은 조건식이 참이라면 계속해서 코드를 반복한다.
- while문의 조건식은 true, false 값만 허용된다. ex) 1=1, 1<2
😜 예제를 통하여 알아보자
import java.util.*; public class repeat_w{ public static void main(String[] args){ int num = 1; int sum = 0; Scanner scan = new Scanner(System.in); System.out.println("더할 숫자를 입력해주세요 0을 입력하면 종료됩니다"); while (num!=0){ System.out.print("add number : "); num = scan.nextInt(); sum += num; } System.out.printf("최종 수는 : %d",sum); } }
- 입력 받은 숫자를 계속해서 더해주는 프로그램
- while 문의 조건문은 변수 num이 0이 아닐 경우 true이기 때문에, 사용자가 0을 입력하기 전까지 숫자를 입력 받는다.
do-while문
do while문은 while문의 추가 구문이다. do 괄호 안에 있는 코드를 먼저 실행한 후 while문에 있는 조건을 검사 한다.
- 문법
do { 먼저 선행할 코드 1 } while(조건문);
- while문 같은 경우에는 조건문을 먼저 검사하고 반복문을 돌릴지 결정한다. 이에 차이가 있다
3. break, continue
break와 continue는 반복문을 제어하기 위한 장치들이다
break
break는 반복문 도중 반복문을 탈출하는 구문이다.
int i = 0; int sum = 0; while(true){ sun += i; if (i>=30){ break; } //i를 1씩 30이 될때까지 더하는 while문
- while 문 안에 있는 조건식은 true로써 무한 반복되는 반복문이지만, i가 30 이상이 될 경우 break를 통해 반복문을 종료시킬 수 있다.
- 이처럼 break는 반복문의 흐름 제어를 한다
continue
continue는 반복문에서 해당 회차를 건너뛰게 한다.
int i = 0; int sum = 0; while(true){ if (i%2==0){ continue; } sum += i; if (i>=30){ break; } //i를 1씩 30이 될때까지 더하는 while문
- continue를 포함한 조건문이 생겼다.
- i%2==0은 2로 나누었을때 나머지가 0인 조건문이다. 따라서 짝수일 경우 해당 코드는 넘어가게 된다
- 따라서 해당 예제는 i가 홀수 일때만 더하게 된다.
4. 이름 붙은 반복문
break문은 하나의 반복문만 벗어날 수 있기 때문에 반복문이 중첩 된 경우 break로 탈출할 수 없다.
이때 중첩 반복문 앞에 이름을 붙이고 break문 혹은 continue문에 이름을 지정해줌으로써 다중 반복문을 건너 뛸 수 있다.
😜 예제를 통하여 알아보자
// Define a label for the loop outerLoop: for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { // Use the label to break out of the outer loop break outerLoop; } System.out.println("i = " + i + ", j = " + j); } }
//결과 i = 1, j = 1 i = 1, j = 2 i = 1, j = 3 i = 2, j = 1
- for문 앞에 이름을 붙여서 이중 for문에서도 한번에 break하여 흐름을 제어할 수 있게 되었다.